home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1995 October
/
EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso
/
Aminet
/
comm
/
tcp
/
ftpd2.lha
/
ftpd2
/
amiga.c
next >
Wrap
C/C++ Source or Header
|
1993-12-26
|
2KB
|
101 lines
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdarg.h>
#include <time.h>
#include <sys/socket.h>
#include <exec/types.h>
#include <proto/socket.h>
#include <proto/exec.h>
#include "ftp.h"
char *SignOn="RAM:";
char *Userfile="RAM:FTPUsers";
char *curftwin="0023";
char *ConfFile="AmiTCP:db/ftpd.conf";
char *DefDirCommand=NULL;
char *ArgDirCommand=NULL;
char *LogFile=NULL;
int LogLevel=0;
char *strip(char *str)
{
char *p;
p=str+strlen(str)-1;
while(p>str) if(isspace(*p)) *(p--)='\0'; else break;
while(*str && isspace(*str)) str++;
return str;
}
char *mystrdup(char *str)
{
if(*str) return strdup(str);
return NULL;
}
void ReadConfig(void)
{
FILE *f;
char buf[512];
char *p,*q;
if(!(f=fopen(ConfFile,"r"))) return;
while(!feof(f))
{
if(fgets(buf,sizeof(buf),f))
{
if(p=strchr(buf,'\r')) *p='\0';
if(p=strchr(buf,'\n')) *p='\0';
if(p=strchr(buf,'#')) *p='\0';
if(p=strchr(buf,'='))
{
*(p++)='\0';
p=strip(p);
q=strip(buf);
// q=var, p=value
if(!stricmp(q,"FTPUsers")) Userfile=strdup(p);
else if(!stricmp(q,"SignOn")) SignOn=strdup(p);
else if(!stricmp(q,"CurfTWin")) curftwin=strdup(p);
else if(!stricmp(q,"DevDir")) DefDirCommand=mystrdup(p);
else if(!stricmp(q,"ArgDir")) ArgDirCommand=mystrdup(p);
else if(!stricmp(q,"LogLevel")) LogLevel=atoi(p);
else if(!stricmp(q,"LogFile")) LogFile=mystrdup(p);
}
}
}
fclose(f);
}
void AddLog(char *fmt,...)
{
va_list ap;
time_t tt;
char *t;
FILE *f;
if(!LogFile) return;
if(f=fopen(LogFile,"a"))
{
tt=time(0);
t=ctime(&tt);
*strchr(t,'\n')='\0';
fprintf(f,"%s (%08X): ",t,FindTask(NULL));
va_start(ap,fmt);
vfprintf(f,fmt,ap);
va_end(ap);
fprintf(f,"\n");
fclose(f);
}
}